package com.example.testapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class btn extends AppCompatActivity implements View.OnClickListener {



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_btn);
        // 从布局文件中获取btn_button的控件
        Button btn_button = findViewById(R.id.btn_button);
        // 给btn_click 设置点击监听器 一旦用户点击按钮 就触发监听器的onClick 方法
        btn_button.setOnClickListener(new MyOnclickListenter());
        // 给btn_click设置长按监听器，一旦用户长按按钮，就触发监听器的onLongClick方法
        btn_button.setOnLongClickListener(new MyOnLongClickListener());

        Button btn1 = findViewById(R.id.btn_er1);
        // 点击事件：被点击时触发的事件
        MyClickListener mc1 = new MyClickListener();
        btn1.setOnClickListener(mc1);
        // 匿名内部类的形式适用于唯一操作的按钮
        Button btn2 = findViewById(R.id.btn_er2);
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.e("TAG","--------匿名内部类");
            }
        });
        Button btn3 = findViewById(R.id.btn_er3);
        btn3.setOnClickListener(this);

    }


    @Override
    public void onClick(View view) {
        Log.e("TAG","用本类实现OnclickListener");
    }

    // 定义一个点击监听器，它实现了接口View.OnClickListener
    class MyOnclickListenter implements View.OnClickListener {
        @Override
        public void onClick(View view) {
            if(view.getId() == R.id.btn_button){
                Toast.makeText(btn.this, "您点击了控件："+((TextView) view).getText(), Toast.LENGTH_SHORT).show();
            }
        }
    }

     class MyOnLongClickListener implements View.OnLongClickListener {
         @Override
         public boolean onLongClick(View view) {
             if(view.getId() == R.id.btn_button){
                 Toast.makeText(btn.this, "您点击了控件："+((TextView) view).getText(), Toast.LENGTH_SHORT).show();
             }
             return true;
         }
     }
     class MyClickListener implements View.OnClickListener{

         @Override
         public void onClick(View view) {
             // 在控制台输出语句
             Log.e("TAG","刚刚点击按钮时注册了内部类监听类对象的按钮");
         }
     }
     // 参数被点击控件对象
     public void MyClick(View view){
         Log.e("TAG","在xml文件中绑定");
     }
}